#include <cstdio>

void dfs(int *n, int c) {
	if (c>=8) {
		int a = (n[0]*1000+n[1]*100+n[2]*10+n[3]) + 
				(n[4]*1000+n[5]*100+n[6]*10+n[1]);
		int b = (n[4]*10000+n[5]*1000+n[2]*100+n[1]*10+n[7]);
		if (a == b) {
			printf(" %d%d%d%d\n", n[0], n[1], n[2], n[3]);
			printf(" %d%d%d%d\n", n[4], n[5], n[6], n[1]);
			printf("%d%d%d%d%d\n", n[4], n[5], n[2], n[1], n[7]);
			printf("-----------------------------------\n");
		}
		return;
	}
	
	for (int i=0; i<=9; i++) {
		if (i==0 && (c==0 || c==4)) continue;
		bool flag = false;
		for (int j=0; j<c; j++) {
			if (n[j] == i) {
				flag = true;
				break;
			}
		}
		if (flag) continue;
		n[c] = i;
		dfs(n, c+1);
	}
}

int main() {
	int n[8] = {0};
	dfs(n, 0);
	return 0;
}
